package pub.xspace.nova.system.service;

import java.util.List;

import com.github.pagehelper.PageInfo;

import pub.xspace.nova.system.domain.SysUser;

/**
 * 用户管理 Service接口
 * 
 * @author HeJianrong
 */
public interface SysUserService {

	/**
	 * 根据ID查找用户对象
	 * @param id 用户ID
	 * @return
	 */
	SysUser getById(String id);
	
	/**
	 * 根据用户名查找用户对象
	 * @param username 用户名（账号）
	 * @return
	 */
	SysUser getByUsername(String username);
	/**
	 * 登录操作
	 * @param sysUser 登录输入信息
	 * @return
	 */
	SysUser login(SysUser sysUser);
	
	/**
	 * 获取所有的用户记录列表
	 * 
	 * @param sysUser 过滤条件
	 * @return
	 */
	List<SysUser> getAll(SysUser sysUser);

	/**
	 * 分页查找用户记录列表
	 * 
	 * @param pageNum  当前页码
	 * @param pageSize 每页的记录数
	 * @param sysUser   过滤条件
	 * @return
	 */
	PageInfo<SysUser> getPage(Integer pageNum, Integer pageSize, SysUser sysUser);

	/**
	 * 保存用户对象
	 * 
	 * @param sysUser 需要保存的用户对象
	 */
	int save(SysUser sysUser);

	/**
	 * 根据ID更新用户对象
	 * 
	 * @param sysUser 需要更新的用户对象
	 * @return
	 */
	int updateById(SysUser sysUser);

	/**
	 * 根据用户ID更新用户的密码
	 * 
	 * @param sysUser 需要更新密码的用户对象
	 * @return
	 */
	int updatePasswordById(SysUser sysUser);

	/**
	 * 根据ID删除用户对象
	 * 
	 * @param id 需要删除的用户对象的ID
	 * @return
	 */
	int deleteById(String id);
	
	/**
	 * 根据ID批量删除用户对象
	 * @param ids
	 * @return
	 */
	int deleteByIds(List<String> ids);
	
}
